package q1592_reorderSpaces;

import java.util.ArrayList;
import java.util.List;

public class Solution {
    /*
    直接通过模拟的方式即可
    记录每一个单词 和 空格的总数目
    然后计算每个单词之间的空格数量 以及 最后剩余的空格数
    最后构造即可
     */
    public String reorderSpaces(String text) {
        List<String> list = new ArrayList<>();
        int len = text.length();
        int blank = 0;
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < len; ++i) {
            if (text.charAt(i) == ' ') {
                blank++;
                if (sb.length() > 0) {
                    list.add(sb.toString());
                    sb = new StringBuilder();
                }
            } else {
                sb.append(text.charAt(i));
            }
        }
        if (sb.length() > 0) list.add(sb.toString());
        StringBuilder ans = new StringBuilder();
        if (list.size() == 1) {
            ans.append(list.get(0));
            for (int i = 0; i < blank; ++i) {
                ans.append(" ");
            }
            return ans.toString();
        }
        int avg = blank / (list.size() - 1);
        int left = blank % (list.size() - 1);

        for (int i = 0; i < list.size() - 1; ++i) {
            ans.append(list.get(i));
            for (int j = 0; j < avg; ++j) {
                ans.append(" ");
            }
        }
        ans.append(list.get(list.size() - 1));
        for (int j = 0; j < left; ++j) {
            ans.append(" ");
        }
        return ans.toString();
    }
}
